Application acceleration management (AAM) devices can accelerate and optimize network traffic communicated between server devices and client devices in order to improve the user experience. AAM computing devices can perform other functions on the network traffic, such as load balancing the network traffic to the server devices and/or implementing firewalls or other security measures on behalf of the network, for example. In order to improve the service of requests for content received from client devices, AAM computing devices often implement a cache to locally store requested content retrieved from server devices to be retrieved more quickly in response to subsequent requests for the content.
However, memory utilized for a cache can be expensive and is limited in size. Accordingly, content is frequently removed from the cache to make room for content more likely to be requested by client devices in future requests in order to optimize the use of the cache. One method of maintaining a cache and identifying content to be removed is by generating a cache score associated with the content. The cache score can be based on any number of factors, criteria, attributes, and/or characteristics of the content.
One exemplary use of a cache is to store media files, such as video segments. Video segments are retrieved using hierarchically structured playlists according to an HTTP Adaptive BitRate (ABR) streaming protocol, such as Apple Inc.'s HTTP Live Streaming (HLS), whereby a master playlist file stores network addresses of a secondary playlist file, which stores network addresses of the video segments. A master playlist file can include network addresses of a plurality of secondary playlist files, each associated with a different bit rate in the master playlist file. Accordingly, upon receipt of the master playlist file, an application, such as a video player, executing on a client device can decide which bit rate is currently most appropriate, or will result in the best experience for the user, and request one of the secondary playlist files using the corresponding network address indicated in the master playlist file.
Upon receipt of the secondary playlist file, the application executing on the client device can cause the client device to request video segments corresponding to the bit rate associated with the secondary playlist file, using the network addresses indicated in the secondary playlist file. The video segments can then be retrieved by the AAM computing device and stored in the cache. However, the AAM computing device will not have any meta information included in the master and secondary playlist files (e.g., bit rate, bandwidth, codec, relative distance, or duration) associated with the video segments from which to generate a cache score.
To address this, AAM computing devices currently store in memory or a database, for example, meta information extracted from the master and secondary playlist files prior to sending those files to the client device. When a video segment is retrieved, the AAM computing device retrieves the stored meta information and generates the cache score. Accordingly, the AAM computing device may require significant memory space to store meta information for media content requested by various client devices, which is undesirable as memory is a limited resource which could otherwise be used to store other information that could be used to improve the functioning of the AAM computing device and/or the associated user experience.